import { Command } from 'commander'
import * as inquirer from 'inquirer'
// 创建命令对象
const cmd = new Command()
const CREATE_TYPES = ['component', 'lib-entry']
// 注册命令、参数、以及用户传入之后的回调函数
cmd
  .command('create')
  .description('创建一个组件模板或配置文件')
  // 添加命令参数 -t | --type, <type> 为必选参数
  .option('-t --type <type>', '创建类型，可选值：component, lib-entry')
  // 注册回调函数
  .action(async args => {
    // 判断用户是否输入 type
    let { type } = args
    if (!type) {
      // 提示用户输入
      const result = await inquirer.prompt([
        {
          // 获取输入后的属性名
          name: 'type',
          // 交互方式为列表
          type: 'list',
          // 提示信息
          message: '(必填)请选择创建类型：',
          // 提供选择项
          choices: CREATE_TYPES,
          // 默认值
          default: 0
        }
      ])
      type = result
    }
    // 输入则创建对应内容
  })

// 执行命令行解析
cmd.parse()
